package com.ruoyi.contract.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 合同信息对象 contract_info
 *
 * @author ruoyi
 * @date 2022-08-31
 */
public class ContractInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 合同编号
     */
    @Excel(name = "合同编号")
    private String contractNo;

    /**
     * 合同名称
     */
    @Excel(name = "合同名称")
    private String contractName;

    /**
     * 订单类型
     */
    @Excel(name = "订单类型")
    private String orderType;

    /**
     * 经办人
     */
    @Excel(name = "经办人")
    private String operator;

    /**
     * 结构量
     */
    @Excel(name = "结构量")
    private Long structCount;

    /**
     * 签订日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signDate;

    /**
     * 交付日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交付日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliverDate;

    /**
     * 对方单位
     */
    @Excel(name = "对方单位")
    private String oppositeCompany;

    /**
     * 合同地址
     */
    @Excel(name = "合同地址")
    private String contractAddress;

    /**
     * 是否预付款
     */
    @Excel(name = "是否预付款")
    private String isPay;

    /**
     * 预付金额
     */
    @Excel(name = "预付金额")
    private BigDecimal payMount;

    /**
     * 付款方式
     */
    @Excel(name = "付款方式")
    private String payWay;

    /**
     * 运输方式
     */
    @Excel(name = "运输方式")
    private String transWay;

    /**
     * 收款方式
     */
    @Excel(name = "收款方式")
    private String collectWay;

    /**
     * 附件
     */
    @Excel(name = "附件")
    private String filePath;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private String status;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String comment;

    /**
     * 是否发货
     */
    @Excel(name = "是否发货")
    private String shipmentStatus;

    /**
     * 合同计划信息
     */
    private List<ContractPlanInfo> contractPlanInfoList;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractName(String contractName) {
        this.contractName = contractName;
    }

    public String getContractName() {
        return contractName;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }

    public String getOrderType() {
        return orderType;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public String getOperator() {
        return operator;
    }

    public void setStructCount(Long structCount) {
        this.structCount = structCount;
    }

    public Long getStructCount() {
        return structCount;
    }

    public void setSignDate(Date signDate) {
        this.signDate = signDate;
    }

    public Date getSignDate() {
        return signDate;
    }

    public void setDeliverDate(Date deliverDate) {
        this.deliverDate = deliverDate;
    }

    public Date getDeliverDate() {
        return deliverDate;
    }

    public void setOppositeCompany(String oppositeCompany) {
        this.oppositeCompany = oppositeCompany;
    }

    public String getOppositeCompany() {
        return oppositeCompany;
    }

    public void setContractAddress(String contractAddress) {
        this.contractAddress = contractAddress;
    }

    public String getContractAddress() {
        return contractAddress;
    }

    public void setIsPay(String isPay) {
        this.isPay = isPay;
    }

    public String getIsPay() {
        return isPay;
    }

    public void setPayMount(BigDecimal payMount) {
        this.payMount = payMount;
    }

    public BigDecimal getPayMount() {
        return payMount;
    }

    public void setPayWay(String payWay) {
        this.payWay = payWay;
    }

    public String getPayWay() {
        return payWay;
    }

    public void setTransWay(String transWay) {
        this.transWay = transWay;
    }

    public String getTransWay() {
        return transWay;
    }

    public void setCollectWay(String collectWay) {
        this.collectWay = collectWay;
    }

    public String getCollectWay() {
        return collectWay;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public String getComment() {
        return comment;
    }

    public void setShipmentStatus(String shipmentStatus) {
        this.shipmentStatus = shipmentStatus;
    }

    public String getShipmentStatus() {
        return shipmentStatus;
    }

    public List<ContractPlanInfo> getContractPlanInfoList() {
        return contractPlanInfoList;
    }

    public void setContractPlanInfoList(List<ContractPlanInfo> contractPlanInfoList) {
        this.contractPlanInfoList = contractPlanInfoList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("contractNo", getContractNo())
                .append("contractName", getContractName())
                .append("orderType", getOrderType())
                .append("operator", getOperator())
                .append("structCount", getStructCount())
                .append("signDate", getSignDate())
                .append("deliverDate", getDeliverDate())
                .append("oppositeCompany", getOppositeCompany())
                .append("contractAddress", getContractAddress())
                .append("isPay", getIsPay())
                .append("payMount", getPayMount())
                .append("payWay", getPayWay())
                .append("transWay", getTransWay())
                .append("collectWay", getCollectWay())
                .append("filePath", getFilePath())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .append("updateTime", getUpdateTime())
                .append("updateBy", getUpdateBy())
                .append("status", getStatus())
                .append("comment", getComment())
                .append("shipmentStatus", getShipmentStatus())
                .append("contractPlanInfoList", getContractPlanInfoList())
                .toString();
    }
}
